
bool IsBalanced(BtNode * pRoot, int* depth){
    int Ld=0,Rd=0;
    //如果根节点不存在 则平衡
    if(pRoot == NULL){
        *depth = 0;
        return true;
    }
    // 否则递归左 右孩子
    bool bLeft  = IsBalanced(pRoot->Lchild, &Ld);
    bool bRight = IsBalanced(pRoot->Rchild, &Rd);
    // 如果左右子树都是平衡二叉树 则比较左右子树的深度
    if (bLeft && bRight){
        // 如果左右子树的深度差不超过 1 则是平衡二叉树
        if (fabs(Rd-Ld)<=1){
            // 深度加一（左右子树中最大的那个加一）
            *depth = 1+(Ld > Rd ? Ld : Rd);
            return true;
        }
    }
    return false;
}